import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// import viteCompression from 'vite-plugin-compression';
// import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import compression from 'vite-plugin-compression';
import { resolve } from 'path'
// https://vitejs.dev/config/
export default defineConfig({
  //  esbuild: {
  //   drop: ['console', 'debugger'],
  // },
  // build: {
  //   outDir: '../../out/web',
  //   // sourcemap: true,
  //   // minify: 'terser',
  //   // terserOptions: {
  //   //   compress: {
  //   //     //生产环境时移除console.log()
  //   //     drop_console: true,
  //   //     drop_debugger: true
  //   //   }
  //   // }
  // },
  plugins: [
    vue(),
    // createSvgIconsPlugin({
    //   // 指定要缓存的图标文件夹
    //   iconDirs: [resolve(__dirname, './src/assets/svg')],
    //   // iconDirs: [resolve(process.cwd(), 'src/renderer/assets/svg')],
    //   // 执行icon name的格式
    //   symbolId: '[name]'
    // }),
    compression({
      algorithm: "gzip", // 指定压缩算法为gzip,[ 'gzip' , 'brotliCompress' ,'deflate' , 'deflateRaw']
      ext: ".gz", // 指定压缩后的文件扩展名为.gz
      threshold: 10240, // 仅对文件大小大于threshold的文件进行压缩，默认为10KB
      deleteOriginFile: false, // 是否删除原始文件，默认为false
      filter: /\.(js|css|json|html|ico|svg)(\?.*)?$/i, // 匹配要压缩的文件的正则表达式，默认为匹配.js、.css、.json、.html、.ico和.svg文件
      compressionOptions: { level: 9 }, // 指定gzip压缩级别，默认为9（最高级别）
      verbose: true, //是否在控制台输出压缩结果
      disable: false, //是否禁用插件
    })
  ],
  resolve: {
    alias: {
      // 'vue3-video-play': 'vue3-video-play/lib/video-play/main.vue',
      '@': resolve(__dirname, './src')
    }
  },


  assetsDir: '',// 打包后静态资源 js/css/image 存放目录
  //生产模式打包配置
  // build: {
  //   outDir: 'webcode',//Specify the output directory (relative to project root).
  // },
  // publicDir:'webcode',
  // base: '/webcode',//在生产中服务时的基本公共路径。
  server: {
    // port: '3000',
    // open: false, //自动打开 
    // base: "./ ", //生产环境路径
    proxy: { // 本地开发环境通过代理实现跨域，生产环境使用 nginx 转发
      // 正则表达式写法
      '^/api': {
        target: 'http://localhost:3002', // 后端服务实际地址
        changeOrigin: true, //开启代理
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  },
})
